package com.test.example.controller.async;

import com.xingluo.tools.async.factory.GlobalUncaughtExceptionHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.lang.reflect.Method;

/**
 * 如果要统一处理所有异步任务的异常，则可以重写GlobalUncaughtExceptionHandler
 */
@Slf4j
@Component
public class MyGlobalUncaughtExceptionHandler extends GlobalUncaughtExceptionHandler {

    @Override
    public void uncaughtException(Thread t, Throwable e) {
        log.error("我的线程池执行异步线程抛出异常： {} ", t.getName(), e);
    }

    @Override
    public void handleUncaughtException(Throwable ex, Method method, Object... params) {
        log.error("我的@Async异步处理 {} 方法，抛出异常： {} ", method.getName(), ex);
    }
}
